﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Device.Location;
using Microsoft.Phone.Controls.Maps;
using Microsoft.Phone.Controls.Maps.Platform;
using RutoDeBared.geocodeservice;
using System.Windows.Media.Imaging;
using RutoDeBared.Control;
using RutoDeBared.Model;

using Microsoft.Phone.Tasks;
using System.IO.IsolatedStorage;
using System.IO;
using Microsoft.Phone;
using System.Windows.Resources;
using System.Windows.Threading;
using Microsoft.Devices.Sensors;
using RutoDeBaredDatabase;

namespace RutoDeBared
{
    public partial class MainPage : PhoneApplicationPage
    {
        Navigatie n = new Navigatie();
        Database database;
        Location location = new Location();
        Informatie i = new Informatie();
        RouteLijst rl = new RouteLijst();
        DispatcherTimer t = new DispatcherTimer();
        MapLayer myRouteLayer = new MapLayer();
        static bool dbstarted = false;
        //GeoCoordinateWatcher gcw = new GeoCoordinateWatcher();

        double compasdata = 0.0;

        Compass c = new Compass();

        static List<GeoCoordinate> locaties = new List<GeoCoordinate>();
        // Constructor
        public MainPage()
        {
            //gcw.PositionChanged += GeoCoordinateWatcherPositionChanged;
            if (dbstarted == false)
            {
                startupdb();
                dbstarted = true;
                //new XMLDocumentLezer();
            }

            if (Compass.IsSupported)
            {
                c = new Compass();
                c.TimeBetweenUpdates = TimeSpan.FromMilliseconds(1);
                c.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<CompassReading>>(compass_CurrentValueChanged);
                c.Start();
            }

            
            t.Interval = TimeSpan.FromMilliseconds(3000);
            t.Tick += OnTimerTick;
            t.Start();
            locaties.Clear();
            InitializeComponent();
            map1.LogoVisibility = Visibility.Collapsed;
            map1.CopyrightVisibility = Visibility.Collapsed;
            
            textbox1.Visibility = Visibility.Collapsed;
            textbox1.Tap += textbox1_tap;
            textbox1.Hold += textbox1_Hold;
        }

        private void GeoCoordinateWatcherPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
        {
            
        }

        public void startupdb()
        {
            String DBConnectionString = "Data Source=isostore:/BestandsNaam.sdf";
            using (Database db = new Database(DBConnectionString))
            {
                db.DeleteDatabase();
                if (db.DatabaseExists() == false)
                {
                    // Create the local database. 
                    db.CreateDatabase();

                    // Prepopulate the categories. 
                    Database.Route r = new Database.Route();
                    r.Stad = "Breda";
                    r.BeschrijvingENG = "Breda";
                    r.BeschrijvingNL = "Breda";
                    r.TitelENG = "Breda";
                    r.TitelNL = "Breda";

                    Database.Bezienswaardigheid b = new Database.Bezienswaardigheid { 
                        AbeeldingLocatie = "1.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5940902,
                        Bretegraad = 4.7792989,
                        Stad = "VVV", 
                        TitelENG = "VVV",
                        TitelNL = "VVV"
                    };
                    Database.Bezienswaardigheid b2 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "2.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5933985,
                        Bretegraad = 4.7793803,
                        Stad = "Liefdeszuster",
                        TitelENG = "Liefdeszuster",
                        TitelNL = "Liefdeszuster"
                    };
                    Database.Bezienswaardigheid b3 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "3.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "4. Als u de brug overgaat, ziet u aan uw linkerhand het " +
                                            "Nassau-Baroniemonument." +
                                            "Bij de ingang van het stadspark, het" +
                                            "Valkenberg, staat een monument" +
                                            "dat u iets vertelt over de wordings-" +
                                            "geschiedenis van de stad Breda, maar" +
                                            "vooral over de Heren van de stad uit het" +
                                            "Huis van Nassau en de 500-jarige band" +
                                            "tussen Breda en het Huis van Nassau." +
                                            "Op 3 juli 1905 werd het Nassau-Baronie-" +
                                            "monument, zoals het officieel heet, met " +
                                            "veel feestelijk vertoon door Koningin" +
                                            "Wilhelmina onthuld. Het beeld herinnert" +
                                            "aan het feit, dat in 1404 Graaf Engelbert," +
                                            "de eerste Bredase Nassau en zijn gemalin, Johanna van Polanen," +
                                            "werden ingehuldigd als Heer en Vrouwe van Breda." +
                                            "De ontwerper is de welbekende dr. P.J.H. Cuypers, die o.m. het" +
                                            "Rijksmuseum en het Centraal Station in Amsterdam ontwierp." +
                                            "Op dit monument zijn niet alleen de wapenschilden van twintig" +
                                            "gemeenten in en rond de Baronie aangebracht maar ook de" +
                                            "Leeuw van Nassau die boven alles uittorent met koningskroon," +
                                            "zwaard en wapenschild. In de drie reliëfs is de 'blijde incomste'" +
                                            "van Graaf Engelbert en zijn gemalin afgebeeld. De poorters" +
                                            "bieden de sleutel van de stad aan.",
                                            
                        Lengtegraad = 51.5921522,
                        Bretegraad = 4.7817204,
                        Stad = "Nassau Baronie Monument",
                        TitelENG = "Nassau Baronie Monument",
                        TitelNL = "Nassau Baronie Monument"
                    };
                    Database.Bezienswaardigheid b4 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "4.jpg",
                        BeschrijvingENG = "We gaan hierheen",
                        BeschrijvingNL = "Let's go here",
                        Lengtegraad = 51.5932991,
                        Bretegraad = 4.7786549,
                        Stad = "The Light House",
                        TitelENG = "The Light House",
                        TitelNL = "The Light House"
                    };
                    Database.Bezienswaardigheid b5 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "5.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "5. U duikt meteen al in de vroege historie van" +
                                "Breda, als u het pad rechts over het bruggetje" +
                                "neemt en verder door het stadspark, het" +
                                "Valkenberg, wandelt." +

                                "Tot 1812 deed dit park dienst als kasteeltuin voor de" +
                                "Heren van Breda. Het park dankt zijn naam aan een val-" +
                                "kenhuis, dat aan de rand ervan stond en van waaruit de" +
                                "kasteelbewoners en hun gasten de valkenjacht bedreven." +
                                "Het park was van orgine een echt bos met hoge bomen." +
                                "In de zeventiende eeuw verdween dat" +
                                "karakter door de aanleg van een tuin" +
                                "naar Franse stijl." +
                                "Eén replica van de 17 beelden staat" +
                                "verderop in het park, in een speciaal" +
                                "aangelegd perkje. Dit perkje is een" +
                                "herinnering aan de Franse stijltuin." +
                                "Het originele beeld is te bezichtigen" +
                                "in het Breda's Museum." +
                                "In 1995 is het Valkenberg in een nieuw" +
                                "jasje gestoken. In het hele park zijn paden" +
                                "verlegd, struiken en bosschages weggehaald" +
                                "en nieuwe verlichting aangebracht. Daarnaast" +
                                "zijn er nieuwe banken in het park geplaatst en" +
                                "speelvoorzieningen voor de kinderen gemaakt. Bij opgravingen in" +
                                "het park zijn de fundamenten van een middeleeuwse muurtoren" +
                                "en van de stenen muur gevonden, die tot 1537 klein Breda" +
                                "omringde. Van twee muurtorens is een klein stukje opgebouwd.",
                                
                        Lengtegraad = 51.5902186,
                        Bretegraad = 4.7763492,
                        Stad = "Kasteel van Breda",
                        TitelENG = "Kasteel van Breda",
                        TitelNL = "Kasteel van Breda"
                    };
                    Database.Bezienswaardigheid b6 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "6.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "6. Aan het einde van het park"+
                                "loopt u langs het poortgebouw "+
                                "van het kasteel; alinks kijkt u op het kasteelplein."+

                                "Dit plein bevindt zich aan de zuiderzijde"+
                                "van het kasteel. U heeft zo een mooi"+
                                "uitzicht op de monumentale poort, de"+
                                "zgn. Stadhouderspoort met het wapen"+
                                "van stadhouder Willem de Vijfde, dat"+
                                "overigens pas later is aangebracht."+
                                "Achter u ziet u het ruiterstandbeeld"+
                                "van stadhouder koning Willem III"+
                                "geplaatst. Voor dit standbeeld werd"+
                                "onder de burgerij van Breda een"+
                                "inzameling gehouden die f 47.000,--"+
                                "opbracht. Voor de oude Nassaustad"+
                                "Breda is de stadhouderkoning van"+
                                "grote betekenis geweest. Hij voltooide"+
                                "na anderhalve eeuw de verbouwing"+
                                "van het Kasteel."+

                                "Hendrik de Derde van Nassau en zijn"+
                                "(drede) vrouw Mencia de Mendoza hebben veel in Breda ver-"+
                                "toefd, maar verbleven dan toch bij voorkeur in de vertrekken"+
                                "boven de overigens al lang geleden gesloopte watermolen op het"+
                                "terrein van het Kasteel."+

                                "Rechts van de poort bevindt zich het zgn. Blokhuis, de ambts-"+
                                "woning van de gouveneur van de KMA. Willem van Oranje"+
                                "woonde daar in een aangrenzende ruimte, maar Prins Maurits"+
                                "prefereerde de watermolen als dagelijks verblijf."+
                                "Prins Philips Willem (1554-1618), de oudste en roomskatholieke"+
                                "zoon van Willem van Oranje, die vele jaren in Spaanse balling-"+
                                "schap verbleef en in Diest werd begraven, is de eerste Oranje"+
                                "geweest, die met zijn vrouw ook in het Kasteel ging wonen."+

                                "Hij liet het park Valkenberg verfraaien en het Kasteel echt als"+
                                "een paleis inrichten. Bij zijn dood in 1618 werden in Breda"+
                                "tweeënveertig dagen achtereen de kerkklokken geluid."+
                                "Op de plaats van de vensters, links en rechts van de poort,"+
                                "bevonden zich in de zestiende en zeventiende eeuw sierlijke"+
                                "open galerijen. Het muisgrijze gebouw links van de kasteelpoort"+
                                "werd gebouwd in 1867. Het maakt thans ook deel uit van het"+
                                "KMA gebouwen complex."+
                                "Meer geschiedenis schuilt et achter de witte pui van het gebouw",
                        Lengtegraad = 51.5896865,
                        Bretegraad = 4.7759022,
                        Stad = "Stadhouderspoort",
                        TitelENG = "Stadhouderspoort",
                        TitelNL = "Stadhouderspoort"
                    };
                    Database.Bezienswaardigheid b7 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "7.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.59002,
                        Bretegraad = 4.7744615,
                        Stad = "Huis van Brecht",
                        TitelENG = "Huis van Brecht",
                        TitelNL = "Huis van Brecht"
                    };
                    Database.Bezienswaardigheid b8 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "8.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5899649,
                        Bretegraad = 4.7742458,
                        Stad = "Spanjaardsgat",
                        TitelENG = "Spanjaardsgat",
                        TitelNL = "Spanjaardsgat"
                    };
                    Database.Bezienswaardigheid b9 = new Database.Bezienswaardigheid {
                        AbeeldingLocatie = "9.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5897769,
                        Bretegraad = 4.7732865,
                        Stad = "Begin Vismarkt",
                        TitelENG = "Begin Vismarkt",
                        TitelNL = "Begin Vismarkt"
                    };
                    Database.Bezienswaardigheid b10 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "10.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "10. Bij de Vishal gaat u de Vismarktstraat in; deze straat komt uit op de Havermarkt."+

                            "Van de plaats waar de vishal (1725) nog aangeeft dat hier vroeger een levendige handel in zeevis werd bedreven, wandelen we door de Vismarktstraat naar de Havermarkt. Deze markt is vanaf de jaren zestig tot op de dag van vandaag het uitgaanscentrum van Breda."+
                            "De naam Havermarkt ten spijt moet worden vastgesteld, dat de granen niet hier; maar op de Grote Markt werden verhandeld. Wel werden hier door de boeren uit de omtrek groenten, eieren en boter aangevoerd en verkocht. In de zeventiende eeuw werd hier ook een leermarkt gehouden."+
                            "De oude benamingen van dit pleintje luidden Groenmarkt, Botermarkt en Korenmarkt hetgeen de vroegere functies iets beter aanduidt."+

                            "Rond 1490 werd dit aangelegd, als een verbreding van de Visserstraat. Wie op dit verrukkelijke pleintje in de zomer op een terrasje een pilsje pakt, ontdekt (overigens ook zonder dat pilsje) al heel gauw, dat dit plein het mooiste uitzicht biedt op de grote toren van de Grote Kerk."+
                            "Vanaf deze plek kunt u ook de mooie brede onderbouw van die toren bewonderen."+
                            "Er is veel te zien op dit pleintje. Links op de hoek van de Havermarkt en Reigerstraat ziet u het huis 'De Arent', gebouwd rond ca. 1490. Het heeft nu een zeventiende eeuwse trapgevel en is in 1966 geheel gerestaureerd en verbouwd tot restaurant."+
                            "Tegenover u op de Havermarkt bevinden zich nog twee panden die uw aandacht verdienen. Havermarkt nummer 5 dateert uit de zestiende en zeventiend eeuw. 'De Vogelstruys' op Havermarkt 21 is een opmerkelijk zeventiende eeuws monument met een hoge, niet symmetrische trapgevel. Ook dit huis heeft in de loop de eeuwen allerlei functies en bestemmingen gehad. Het was onder meer refugiehuis voor de zusters van Catharinadal in de zeventiende eeuw."+
                            "Voor het beeldje 'De Troubadour', dat aan het eind van de Havermarkt prijkt, zijn vier exemplaren vervaardigd. De andere drie werden onthuld in Diest, Orange en Dillenburg, de zustersteden van Breda in de in 1963 tot stand gekomen Unie van Oranjesteden."+
                            "Een stukje verder in de Visserstraat (nr. 31), aan de rechterkant, staat een fraai bakstenen huis uit de 17e eeuw met overblijfselen van een zestiende eeuwse gothische woning, de Drie Moren geheten.",
                        Lengtegraad = 51.5893644,
                        Bretegraad = 4.774472,
                        Stad = "Begin Havermarkt",
                        TitelENG = "Begin Havermarkt",
                        TitelNL = "Begin Havermarkt"
                    };
                    Database.Bezienswaardigheid b11 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "11.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "11. Vanaf de Havermarkt gaat u rechtdoor de Torenstraat in. Meteen voorbij de kerk links het Kerkplein op."+

                                "In 1969 werden in Breda de Torenfeesten gehouden uit vreugde over de afsluiting van de restauratieperiode van de Grote Toren, die 25 jaar in beslag nam. Al die tijd hebben de Bredanaars, maar zij niet alleen, tegen een toren aangekeken die zijn schoonheid achter een netwerk van steigers verborgen hield."+
                                "Ook tussen 1995 en 1997 werd de schoonheid van de Grote of Onze Lieve Vrouwe Kerk tijdelijk verborgen gehouden achter steigers. In bijna drie jaar tijd werd de kerk wederom van binnen gerestaureerd."+
                                "De restauratie was onderverdeeld in drie fasen. In de eerste fase stonden onder andere werkzaamheden als het schoonspuiten van de buitenzijde, het repareren van het voegwerk en de glas-in-loodramen en het schilderen van de binnenzijde centraal. In de tweede fase werd de vloerverwarming aangelegd; In de derde fase is de rest van de kerk gerestaureerd."+
                                "Uit onderzoek is vast komen te staan dat in 1410 de bouw van de kerk is begonnen. In de zestiende eeuw is de kerk aan de zuidzijde en aan de noordzijde uitgebreid met enkele kapellen, de huidige consistoriekamer en de kootomgang. De toren kwam in 1509 gereed; In 1468 was daarvoor de eerste steen gelegd,zodat de bouwperiode alles bij elkaar toch wel veertig jaar heeft geduurd. De torenspits brandde in 1694 af. In de jaren daarna werd hij herbouwd, onder andere met hout dat door stadhouderkoning Willem de derde uit zijn bossen was geschonken. In 1702 kon de haan er weer op worden geplaatst. Het is duidelijk dat de Heren van Breda, met name de Nassaufs, een belangrijke bijdrage hebben geleverd aan de wordingsgeschiedenis van de Grote Kerk. Die Heren van Breda liggen er ook begraven; Hun graftomben zijn ware kunsthistorische pronkstukken. Prins Willem van Oranje, die in 1584 in Delft werd vermoord, had in de Grote Kerk onder het prachtige grafmonument van Graaf Engelbert de Tweede een laatste rustplaats gereserveerd, maar zijn stoffelijk overschot en die van de na hem komende Oranjevorsten werden voortaan in Delft te aarde besteld."+

                                "U loopt vanaf het Kerkplein terug naar de Torenstraat en gaat linksaf. De eerste zijstraat aan uw rechterhand is de Lange Brugstraat."+

                                "Op de hoek van Torenstraat en de Lange Brugstraat bevindt zich nog een zeventiende eeuwse trapgevel uit ca. 1600 en het uithangbord geeft de oude naam ft schaekbort (voor 1727 eHet Dambordf) van dit pand aan. Let u eens op de mooie muurankers.",
                        Lengtegraad = 51.5887275,
                        Bretegraad = 4.7753429,
                        Stad = "Grote Kerk",
                        TitelENG = "Grote Kerk",
                        TitelNL = "Grote Kerk"
                    };
                    Database.Bezienswaardigheid b12 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "12.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5881898,
                        Bretegraad = 4.7751387,
                        Stad = "Het Poortje",
                        TitelENG = "Het Poortje",
                        TitelNL = "Het Poortje"
                    };
                    Database.Bezienswaardigheid b13 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "13.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5872675,
                        Bretegraad = 4.7758117,
                        Stad = "Ridderstraat",
                        TitelENG = "Ridderstraat",
                        TitelNL = "Ridderstraat"
                    };
                    Database.Bezienswaardigheid b14 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "14.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5874055,
                        Bretegraad = 4.7766336,
                        Stad = "Grote Markt",
                        TitelENG = "Grote Markt",
                        TitelNL = "Grote Markt"
                    };
                    Database.Bezienswaardigheid b15 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "15.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5879975,
                        Bretegraad = 4.7761771,
                        Stad = "Bevrijdingsmonument",
                        TitelENG = "Bevrijdingsmonument",
                        TitelNL = "Bevrijdingsmonument"
                    };
                    Database.Bezienswaardigheid b16 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "16.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "",
                        Lengtegraad = 51.5887803,
                        Bretegraad = 4.7763253,
                        Stad = "Stadhuis",
                        TitelENG = "Stadhuis",
                        TitelNL = "Stadhuis"
                    };
                    Database.Bezienswaardigheid b17 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "17.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "17. Schuin aan de overkant op de Grote Markt vindt u het stadhuis van Breda "+
                                "en tevens de dependance van de VVV."+

                                "De hoofdingang van het standhuis bevindt zich boven het bordes, dat bewaakt "+
                                "wordt door twee zandstenen leeuwen. Het stadhuis, zoals dat er nu uitziet, "+
                                "kwam pas in 1767 tot stand. Het zijn eigenlijk vier huizen, die toen door de "+
                                "bouwmeester van Oranje, Philips Willem Schonck, achter één gevel werden "+
                                "verborgen. Het oudste deel is de grote hal. Al in de vijftiende eeuw werd "+
                                "daarnaast ook een zgn. 'Cleyn raedthuys' in gebruik genomen. In 1898 kwam "+
                                "het meest rechtse huis, het 'Liggend Hert' erbij, dat nog steeds een aparte "+
                                "gevel. heeft."+

                                "Ondanks het feit dat het stadhuis slechts beperkt geopend is voor het "+
                                "publiek, willen we u de volgende informatie over de binnen zijde ervan toch "+
                                "niet onthouden."+
                                "Vrouwe Justitia boven de hoofdingang en het houten beeld achter in de hal "+
                                "geven aan dat in het stadhuis vroeger ook recht gesproken werd."+
                                "De balie van de vroegere rechtbank, eens staande tegen de achtermuur van de "+
                                "hal, wordt nu in het Breda's Museum bewaard."+
                                "Links hangt een grote kopie van het beroemde schilderij van Velasques 'Las "+
                                "Lanzas, dat de overgave van Breda aan de Spaanse bevelhebber Spinola (1625) "+
                                "in beeld brengt."+
                                "Het oorspronkelijke schilderij hangt in het Prado te Madrid."+
                                "Het stadhuis wordt nog gebruikt voor openbare raadsvergaderingen en voor het "+
                                "sluiten van huwelijken. De burgemeester, wethouders en gemeete-ambtenaren "+
                                "huizen sinds februari 1992 in het nieuwe Stadskantoor aan de Claudius "+
                                "Prinsenlaan in Breda. Door het poortgebouw rechts van het stadhuis lopen we "+
                                "het Stadserf op. Midden op dit pleintje herinnert het beeldje De "+
                                "Turfschipper van Gerarda Rueb, aan de legendarische overval in 1590 van "+
                                "Adriaan van Bergen met zijn Turfschip. (De VVV Breda verkoopt hiervan een "+
                                "replica).",
                        Lengtegraad = 51.5875619,
                        Bretegraad = 4.7771064,
                        Stad = "Antonius van Paduakerk",
                        TitelENG = "Antonius van Paduakerk",
                        TitelNL = "Antonius van Paduakerk"
                    };
                    Database.Bezienswaardigheid b18 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "18.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "18. U loopt via het poortje weer terug naar de Grote Markt en gaat linksaf. "+
                                "De tweede straat links is de St. Janstraat. Hier gaat u in."+

                                "Op de hoek van de Halstraat / St. Janstraat staan we voor het gebouw met de "+
                                "pilaren: het garnizoenscommando. Vroeger werd het gebouwtje hoofdwacht "+
                                "genoemd. Voordat die hoofdwacht daar introk, stond op deze plaats de St. "+
                                "Janskapel met daar weer achter de gebouwen van de Ridderorde van St. Jan."+
                                "De leden van deze orde verzorgden hier zieken en armen."+
                                "De straatnaam herinnert aan deze ridders van St. Jan. in de kapel begon de "+
                                "grote stadsbrand van 1534."+

                                "De St. Janstraat heeft ooit ook de Veterstraat geheten, waarschijnlijk naar "+
                                "de huydvetters of leerlooiers, die in de St. Janstraat hun beroep "+
                                "uitoefenden."+
                                "Aan uw rechterhand in de St. Janstraat staat de Antonius van Paduakerk, een "+
                                "opvallend rijk uitgevoerde waterstaatskerk. Deze kerk is in 1836 gebouwd als "+
                                "eerste katholieke kerk na de schuilkerkenperiode, die officieel gebouwd "+
                                "mocht worden. In 1853 werd het de eerste bisschopskerk (kathedraal) van het "+
                                "nieuwe bisdom in Breda. De zetel van de bisschop van Breda keerde na een "+
                                "afwezigheid van 32 jaar aan het begin van 2001 terug naar de Antoniuskerk "+
                                "die daarmee de status van kathedraal opnieuw verwierf. Aan de voorgevel zijn "+
                                "duidelijk de drie soorten antieke zuilen te zien. Van onder naar boven: "+
                                "Dorische, Ionische en Corinthische zuilen. Het beeld boven de ingang stelt "+
                                "'de Godsdienst' voor. Binnen valt direct de schitterende houten preekstoel "+
                                "op. Hierin is in verschillende panelen het leven van H. Antonius uitgebeeld."+
                                "Even verder bevinden zich restanten of alleen maar herinneringen aan twee "+
                                "zeer voorname hofhuizen, het Huis Ocrum, waarin tot 1994 de Kunstacademie "+
                                "St. Joost was gevestigd en het Huis Hersbeeck, thans pastorie. In 1667 "+
                                "verbleven in beide huizen de Engelse gezanten, die deelnamen aan de "+
                                "Vredesonderhandelingen van Breda. De afgevaardigden van de Raad van State "+
                                "gebruikten het pand (nr. 16) wanneer zij in de stad op dienstreis waren, "+
                                "maar ook koning Lodewijk Napoleon heeft er gelogeerd. De erker van dit pand "+
                                "had een controlerende functie: de pastoor kon goed in de gaten houden wie er "+
                                "naar de kerk ging."+
                                "Het Huis Ocrum (nr. 18) was van 1848 tot 1952 rooms burgerweeshuis. Dat kunt "+
                                "u nog zien aan de kinderkopjes die aan de 19e eeuwse voorgevel van het "+
                                "academiegebouw zijn aangebracht. De rode kleur van dit huis (na de "+
                                "restauratie aangebracht) zal door de loop der jaren een mooie grijs rode "+
                                "kleur van dit huis (na de restauratie aangebracht) zal door de loop der "+
                                "jaren een mooie grijs rode kleur krijgen.",
                        Lengtegraad = 51.5880143,
                        Bretegraad = 4.7789687,
                        Stad = "Bibliotheek",
                        TitelENG = "Bibliotheek",
                        TitelNL = "Bibliotheek"
                    };
                    Database.Bezienswaardigheid b19 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "19.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "19. Aan het eind van de St. Jansstraat gaat u rechtsaf de Molenstraat in."+

                                "In de Molenstraat ziet u recht de Bibliotheek, ontworpen door architect "+
                                "Herman Hertzberger. Omdat de Molenstraat vrij smal is, heeft de architect "+
                                "ruimte gecreëerd door de bibliotheek schuin oplopende wanden te geven. Op de "+
                                "plaats van de bibliotheek (op de hoek met de Oude Vest) bevond zich vroeger "+
                                "een poort. Boven deze poort bevond zich 's Heeren Gevangenhuys, waar de "+
                                "zwaarst gestraften werden ondergebracht. De plaats is nog met keitjes in het "+
                                "asfalt aangegeven; de asfaltweg is de plaats van de oude stadsgracht.",
                        Lengtegraad = 51.5880388,
                        Bretegraad = 4.7813711,
                        Stad = "Kloosterkazerne",
                        TitelENG = "Kloosterkazerne",
                        TitelNL = "Kloosterkazerne"
                    };
                    Database.Bezienswaardigheid b20 = new Database.Bezienswaardigheid
                    {
                        AbeeldingLocatie = "20.jpg",
                        BeschrijvingENG = "",
                        BeschrijvingNL = "20. Op de hoek Molenstraat en de Oude Vest gaat u linksaf."+

                                "Op deze hoek ziet u aan de overkant een voornaam monument uit de "+
                                "geschiedenis van Breda: de kloosterkazerne. Het is een deel van het vroegere "+
                                "zusterklooster St. Catharinadal, dat hier sinds 1295 gevestigd was. Het "+
                                "huidige gebouw dateert uit 1504. In 1645 werden de zusters Norbertinessen "+
                                "vanuit Breda naar Oosterhout verdreven.",
                        Lengtegraad = 51.5877493,
                        Bretegraad = 4.782102,
                        Stad = "Chasse theater",
                        TitelENG = "Chasse theater",
                        TitelNL = "Chasse theater"
                    };
                    //Database.Bezienswaardigheid b21 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "21.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.5885173,
                    //    Bretegraad = 4.7810619,
                    //    Stad = "Binding van Isaac",
                    //    TitelENG = "Binding van Isaac",
                    //    TitelNL = "Binding van Isaac"
                    //};
                    //Database.Bezienswaardigheid b22 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "22.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.5896498,
                    //    Bretegraad = 4.7810467,
                    //    Stad = "Beyerd",
                    //    TitelENG = "Beyerd",
                    //    TitelNL = "Beyerd"
                    //};
                    //Database.Bezienswaardigheid b23 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "23.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.589563,
                    //    Bretegraad = 4.7799079,
                    //    Stad = "Gasthuispoort",
                    //    TitelENG = "Gasthuispoort",
                    //    TitelNL = "Gasthuispoort"
                    //};
                    //Database.Bezienswaardigheid b24 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "24.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.5891235,
                    //    Bretegraad = 4.7778488,
                    //    Stad = "Willem Merkxtuin",
                    //    TitelENG = "Willem Merkxtuin",
                    //    TitelNL = "Willem Merkxtuin"
                    //};
                    //Database.Bezienswaardigheid b25 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "25.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.5897168,
                    //    Bretegraad = 4.7783618,
                    //    Stad = "Begijnenhof",
                    //    TitelENG = "Begijnenhof",
                    //    TitelNL = "Begijnenhof"
                    //};
                    //Database.Bezienswaardigheid b26 = new Database.Bezienswaardigheid
                    //{
                    //    AbeeldingLocatie = "26.jpg",
                    //    BeschrijvingENG = "",
                    //    BeschrijvingNL = "",
                    //    Lengtegraad = 51.589507,
                    //    Bretegraad = 4.7760557,
                    //    Stad = "Einde Stadswandeling",
                    //    TitelENG = "Einde Stadswandeling",
                    //    TitelNL = "Einde Stadswandeling"
                    //};


                    db.Routes.InsertOnSubmit(r);
                    db.Bezienswaardigheiden.InsertOnSubmit(b);
                    db.Bezienswaardigheiden.InsertOnSubmit(b2);
                    db.Bezienswaardigheiden.InsertOnSubmit(b3);
                    db.Bezienswaardigheiden.InsertOnSubmit(b4);
                    db.Bezienswaardigheiden.InsertOnSubmit(b5);
                    db.Bezienswaardigheiden.InsertOnSubmit(b6);
                    db.Bezienswaardigheiden.InsertOnSubmit(b7);
                    db.Bezienswaardigheiden.InsertOnSubmit(b8);
                    db.Bezienswaardigheiden.InsertOnSubmit(b9);
                    db.Bezienswaardigheiden.InsertOnSubmit(b11);
                    db.Bezienswaardigheiden.InsertOnSubmit(b12);
                    db.Bezienswaardigheiden.InsertOnSubmit(b13);
                    db.Bezienswaardigheiden.InsertOnSubmit(b14);
                    db.Bezienswaardigheiden.InsertOnSubmit(b15);
                    db.Bezienswaardigheiden.InsertOnSubmit(b16);
                    db.Bezienswaardigheiden.InsertOnSubmit(b17);
                    db.Bezienswaardigheiden.InsertOnSubmit(b18);
                    db.Bezienswaardigheiden.InsertOnSubmit(b19);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b20);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b21);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b22);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b23);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b24);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b25);
                    //db.Bezienswaardigheiden.InsertOnSubmit(b26);

                    db.SubmitChanges();
                    
                    Database.Bezienswaardigheid_Route br = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br2 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b2.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br3 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b3.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br4 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b4.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br5 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b5.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br6 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b6.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br7 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b7.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br8 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b8.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br9 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b9.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br10 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel,
                        BezienswaardigheidSleutel = b10.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br11 = new Database.Bezienswaardigheid_Route{ 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b11.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br12 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b12.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br13 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b13.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br14 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b14.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br15 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b15.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br16 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b16.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br17 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b17.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br18 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b18.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br19 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b19.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    Database.Bezienswaardigheid_Route br20 = new Database.Bezienswaardigheid_Route { 
                        RouteSleutel = r.RouteSleutel, 
                        BezienswaardigheidSleutel = b20.BezienswaardigheidSleutel, 
                        volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br21 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b21.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br22 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b22.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br23 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b23.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br24 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b24.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br25 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b25.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };
                    //Database.Bezienswaardigheid_Route br26 = new Database.Bezienswaardigheid_Route { 
                    //    RouteSleutel = r.RouteSleutel, 
                    //    BezienswaardigheidSleutel = b26.BezienswaardigheidSleutel, 
                    //    volgnummer = 0 };

                    db.Bezienswaardigheidroute.InsertOnSubmit(br);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br2);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br3);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br4);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br5);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br6);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br7);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br8);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br9);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br10);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br11);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br12);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br13);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br14);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br15);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br16);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br17);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br18);
                    db.Bezienswaardigheidroute.InsertOnSubmit(br19);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br20);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br21);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br22);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br23);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br24);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br25);
                    //db.Bezienswaardigheidroute.InsertOnSubmit(br26);
                    db.SubmitChanges();
                    
                    database = db;

                    //new XMLDocumentLezer();
                }
            }

            Database.Route[] routes = new Database(DBConnectionString).Routes.ToArray();
            Database.Bezienswaardigheid[] bezienswaardigheiden = new Database(DBConnectionString).Bezienswaardigheiden.ToArray();
            Database.Bezienswaardigheid_Route[] koppel = new Database(DBConnectionString).Bezienswaardigheidroute.ToArray();
            int ii = 0;
            //Belangrijkpunt bp = new Belangrijkpunt("Oosterhout", "Hier woont Toby", new GeoCoordinate(51.6410202, 4.8616901), "stad", "imagepath");
            //bezienswaardigheiden/Belangrijkpunt bp2 = new Belangrijkpunt("Breda", "Hier woont Bas", new GeoCoordinate(51.5830700, 4.7769505), "stad", "imagepath2");

            System.Diagnostics.Debug.WriteLine("check array bezienswaardigheid sleutel = " + koppel[0].BezienswaardigheidSleutel);
            List<Belangrijkpunt> lijst = new List<Belangrijkpunt>();
            List<Database.Bezienswaardigheid> gekoppeldebezienwaardigheiden = new List<Database.Bezienswaardigheid>();
            List<int> sleutels = new List<int>();
            ii = 0;
            int aa = 0;
            int bb = 0;
            while (routes.Length > ii)
            {

                int eee = routes[ii].RouteSleutel;
                System.Diagnostics.Debug.WriteLine("opgehaalde route sleutel = " + eee);
                gekoppeldebezienwaardigheiden = new List<Database.Bezienswaardigheid>();
                sleutels = new List<int>();
                while (koppel.Length > aa)
                {
                    /*Database.Bezienswaardigheid[] bezienswaardigheidenn =
                       (from b in database.Bezienswaardigheiden
                        from k in database.Bezienswaardigheidroute
                        where k.RouteSleutel == eee && b.BezienswaardigheidSleutel == k.BezienswaardigheidSleutel
                        select b).ToArray();*/
                    if (eee == koppel[aa].RouteSleutel)
                        sleutels.Add(koppel[aa].BezienswaardigheidSleutel);
                    System.Diagnostics.Debug.WriteLine("toegevoegde bezienswaardigheidsleutel = " + koppel[aa].BezienswaardigheidSleutel);
                    aa++;
                }
                aa = 0;
                bb = 0;
                while (koppel.Length > aa)
                {
                    while (bezienswaardigheiden.Length > bb)
                    {
                        if (bezienswaardigheiden[bb].BezienswaardigheidSleutel == koppel[aa].BezienswaardigheidSleutel)
                        {
                            lijst.Add(new Belangrijkpunt(bezienswaardigheiden[bb].Stad, bezienswaardigheiden[bb].BeschrijvingENG, new GeoCoordinate(bezienswaardigheiden[bb].Lengtegraad, bezienswaardigheiden[bb].Bretegraad), bezienswaardigheiden[bb].Stad, bezienswaardigheiden[bb].AbeeldingLocatie));
                            System.Diagnostics.Debug.WriteLine("Belangrijk punt toegevoed = " + bezienswaardigheiden[bb].BezienswaardigheidSleutel);
                        }
                        bb++;


                    }
                    bb = 0;
                    aa++;
                }
                aa = 0;
                i.routeToevoegen(new Route(routes[ii].Stad, routes[ii].BeschrijvingENG, routes[ii].BeschrijvingNL, routes[ii].TitelNL, routes[ii].TitelENG, lijst));
                lijst = new List<Belangrijkpunt>();
                ii++;
            }
        }

        private void test()
        {
            if (i.getRoutes().Count == 0)
            {
                Belangrijkpunt bp = new Belangrijkpunt("Oosterhout", "Hier woont Toby", new GeoCoordinate(51.6410202, 4.8616901), "stad", "imagepath");
                Belangrijkpunt bp2 = new Belangrijkpunt("Breda", "Hier woont Bas", new GeoCoordinate(51.5830700, 4.7769505), "stad", "imagepath2");
                List<Belangrijkpunt> lijst = new List<Belangrijkpunt> { bp, bp2 };
                i.routeToevoegen(new Route("henk", "english", "nederlands", "titel", "title", lijst));
            }
        }

        void compass_CurrentValueChanged(object sender, SensorReadingEventArgs<CompassReading> e)
        {
            Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading));
        }

        private void UpdateUI(CompassReading compassReading)
        {
            compasdata = compassReading.TrueHeading;
        }

        //tick event van de timer
        void OnTimerTick(Object sender, EventArgs args)
        {
            pushpinsVerwijderen();
            if (n.routeplanningOpvragen().Count == 0 && locaties.Count > 1)
            {
                n.routePlannen(locaties);
            }
            else if (n.getHuidigeLocatie() != null)
            {
                vulLocaties();
            }
            if (locaties.Count > 0)
            {
                map1.Children.Remove(myRouteLayer);
                myRouteLayer = new MapLayer();
                locatieTekenen();
                routeTekenen();
            }

            //afstandcheck
            if (locaties.Count > 1)
            {
                //afstand 20 meter
              
                    foreach (Belangrijkpunt bp in rl.lijstOpvragen())
                    {
                       
                        for(int count = 1; count < locaties.Count; count++)
                        {
                            if (berekenAfstand(count) < 0.05)
                            {
                            if (locaties[count].Latitude == bp.locatie.Latitude && locaties[count].Longitude == bp.locatie.Longitude)
                            {
                                i.setHuidigPunt(bp);
                                textbox1.Text = "naam: " + bp.Naam + Environment.NewLine + "latitude: " + bp.locatie + Environment.NewLine + "Cat:" + bp.Categorie;
                                textbox1.Visibility = Visibility.Visible;
                                locaties.Remove(bp.locatie);
                            }
                        }
                    }
                }
            }
        }

        //lijst met bezienswaardigheden vullen
        private void vulLocaties()
        {
            if (rl.lijstOpvragen() != null)
            {
                locaties.Clear();
                //if (locaties.Count == 0)
                //{
                //    if (n.getHuidigeLocatie() != null)
                //    {
                //        locaties.Add(n.getHuidigeLocatie());
                //    }
                //}
                foreach (Belangrijkpunt bp in rl.lijstOpvragen())
                {
                    locaties.Add(bp.locatie);
                }
            }   
        }

        private double berekenAfstand(int count)
        {

            if (locaties.Count > 1)
            {

  
                    double afstand = 0;
                    //try
                    //{
                        afstand = Afstandberekenen.CalcDistance(n.getHuidigeLocatie().Latitude, n.getHuidigeLocatie().Longitude, locaties[count].Latitude, locaties[count].Longitude);
                    //}
                    //catch (ArgumentOutOfRangeException)
                    //{

                    //}
                   // System.Diagnostics.Debug.WriteLine("" + afstand);
                    return afstand;
          
            }
            else
            {
                return 100;
            }
        }

        //zoom op middelpunt
        private void autozoom()
        {
            double lengtegraadgemiddeld = 0;
            double breedtegraadgemiddeld = 0;
            if(locaties != null)
            {
                foreach(Location l in locaties)
                {
                    lengtegraadgemiddeld += l.Latitude;
                    breedtegraadgemiddeld += l.Longitude;      
                }

                lengtegraadgemiddeld /= locaties.Count();
                breedtegraadgemiddeld /= locaties.Count();

                map1.SetView(new GeoCoordinate(lengtegraadgemiddeld, breedtegraadgemiddeld), 13);
            }
        }

        //zoom op locatie
        private void locatieZoom()
        {
            if (n.getHuidigeLocatie() != null)
                map1.SetView(n.getHuidigeLocatie(), 14);
        }

        //zoom op alle locaties
        private void perfectZoom()
        {
            LocationCollection a = new LocationCollection();
            foreach (Location l in locaties)
                a.Add(l);

            map1.SetView(LocationRect.CreateLocationRect(a));
        }

        private void routeTekenen()
        {
            Color routeColor = Colors.Red;
            SolidColorBrush routeBrush = new SolidColorBrush(routeColor);
            MapPolyline routeLine = new MapPolyline();
            routeLine.Locations = new LocationCollection();
            routeLine.Stroke = routeBrush;
            routeLine.Opacity = 0.50;
            routeLine.StrokeThickness = 5.0;

            List<Location> routelijst = n.routeplanningOpvragen();
            foreach (Location p in routelijst)
                routeLine.Locations.Add(new Location { Latitude = p.Latitude, Longitude = p.Longitude });


            
            myRouteLayer.Children.Add(routeLine);
            this.map1.Children.Add(myRouteLayer); 

            int x = 0;

            foreach (GeoCoordinate gr in locaties)
            {
                if (x != 0)
                {
                    Pushpin lokatiePushpin = new Pushpin();
                    lokatiePushpin.Template = this.Resources["PinTemplate"] as ControlTemplate;
                    //tapevent toevoegen
                    lokatiePushpin.Tap += locationPushpin_Tap;
                    this.map1.Children.Add(lokatiePushpin);

                    location.Latitude = locaties[x].Latitude;
                    location.Longitude = locaties[x].Longitude;
                    MapLayer.SetPosition(lokatiePushpin, location);
                    //locatie meegeven aan pushpin zelf
                    lokatiePushpin.Location = location;

                    //pushpin naam instellen  miss gebruiken voor pushpin events anders gewoon locatie          
                    foreach (Belangrijkpunt bp in rl.lijstOpvragen())
                    {
                        if (bp.locatie.Latitude == location.Latitude && bp.locatie.Longitude == location.Longitude)
                        {
                            lokatiePushpin.Name = bp.Naam;
                        }
                    }
                    MapLayer.SetPositionOrigin(lokatiePushpin, PositionOrigin.Center);
                }
                x++;
            }        
        }

        private void pushpinsVerwijderen()
        {
            int intTotalChildren = map1.Children.Count - 1;
            for (int intCounter = intTotalChildren; intCounter > 0; intCounter--)
            {
                if (map1.Children[intCounter].GetType() == typeof(MapLayer))
                {
                    map1.Children.Remove(map1.Children[intCounter]);
                }
            }
        }

        private void locatieTekenen()
        {
            if (n.getHuidigeLocatie() != null)
            {
                Pushpin p = new Pushpin();
                Location l = new Location();
                l.Latitude = n.getHuidigeLocatie().Latitude;
                l.Longitude = n.getHuidigeLocatie().Longitude;
                p.Location = l;

                p.Template = null;
                p.PositionOrigin = PositionOrigin.Center;

                Image i = new Image();

                ImageBrush ib = new ImageBrush();
                RotateTransform r = new RotateTransform();
                r.CenterX = 0.5;
                r.CenterY = 0.5;
                r.Angle = compasdata;
                ib.RelativeTransform = r;

                ib.ImageSource = new System.Windows.Media.Imaging.BitmapImage(new Uri("imgPijl.png", UriKind.Relative));
                p.Content = new System.Windows.Shapes.Rectangle()
                {
                    Fill = ib,
                    Opacity = .8,
                    Height = 50,
                    Width = 50
                };
                MapLayer myLocatieLayer = new MapLayer();
                myLocatieLayer.Children.Add(p);
                MapLayer.SetPositionOrigin(p, PositionOrigin.Center);
                this.map1.Children.Add(myLocatieLayer);
            }
        }

        private void BezienswaardigheidBezocht()
        {
            locaties.RemoveAt(1);
        }

        private void locationPushpin_Tap(object sender, GestureEventArgs e)
        {
            Pushpin p = sender as Pushpin;
            textbox1.Text = "naam: " + p.Name + Environment.NewLine + "latitude: " + p.Location.Latitude + Environment.NewLine + "Long:" + p.Location.Longitude ;
            textbox1.Visibility = Visibility.Visible;  
            //TODO
            foreach(Belangrijkpunt bp in rl.lijstOpvragen())
            {
                if(bp.Naam.Equals(p.Name))
                {
                    i.setHuidigPunt(bp);
                    break;
                }
            }
        }

        private void bitmapFromUri_ImageOpened(object sender, RoutedEventArgs e)
        {
            textbox1.Visibility = Visibility.Visible;
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/Menuscherm.xaml", UriKind.Relative));
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/HulpScherm.xaml", UriKind.Relative));
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            locatieZoom();
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            perfectZoom();
        }

        private void textbox1_tap(object sender, GestureEventArgs e)
        {
            textbox1.Visibility = Visibility.Collapsed;

        }

        private void textbox1_Hold(object sender, GestureEventArgs e)
        {
            textbox1.Visibility = Visibility.Collapsed;
            //afstand 20 meter
            //if (berekenAfstand(4365) < 0.05)
            //{
                //BezienswaardigheidBezocht();
                //n.routeplanningVerwijderen();
            //}
            NavigationService.Navigate(new Uri("/InformatieScherm.xaml", UriKind.Relative));
        }
    }
}